স্ট্রাকচার ও পয়েন্টার (C structure & pointer)

Computer Programming - সি প্রোগ্রামিং (C Programming) - সি ফাইল এবং স্ট্রাকচার (C File & Structure)
446

এই অধ্যায়ে আপনি স্ট্রাকচার(structure) এবং পয়েন্টার(pointer) সম্পর্কিত কিছু প্রাসঙ্গিক উদাহরণ দেখবেন যা আপনাকে স্ট্রাকচার থকে পয়েন্টার(pointer) ব্যবহার করে ডেটা এক্সেস(data access) করার জন্য সাহায্য করবে।


 

সি প্রোগ্রামিং স্ট্রাকচার এবং পয়েন্টার

 

পয়েন্টার(pointer) ব্যবহার করে স্ট্রাকচার(structure) তৈরি এবং এক্সেস উভয়ই করা যেতে পারে। নিম্নের ন্যায় স্ট্রাকচার টাইপের পয়েন্টার ভ্যারিয়েবল তৈরি করা যেতে পারেঃ

struct name {
    member1;
    member2;
    .
    .
};

int main()
{
    struct name *ptr; 
}

উপরের প্রোগ্রামে struct name টাইপের একটি পয়েন্টার ভ্যারিয়েবল(*ptr) তৈরি হয়েছে।


 

পয়েন্টারের মাধ্যমে স্ট্রাকচারের মেম্বারকে এক্সেস করা

 

পয়েন্টারের মাধ্যমে স্ট্রাকচারের মেম্বার(member) কে দুইভাবে এক্সেস করা যায়ঃ

  1. পয়েন্টারকে অন্য এড্রেসে রেফার করে মেমোরি এক্সেস করা
  2. ডাইনামিক মেমোরি এলোকেশন(dynamic memory allocation) ব্যবহার করে।


 

১। পয়েন্টারকে অন্য এড্রেসে রেফার করে মেমোরি এক্সেস করা

পয়েন্টারের মাধ্যমে স্ট্রাকচারের মেম্বারকে এক্সেস করার জন্য সি প্রোগ্রামঃ

#include <stdio.h>
typedef struct person
{
   int age;
   float weight;
};

int main()
{
    struct person *personPtr, person1;
    personPtr = &person1;  //person1 এর মেমোরি এড্রেসে পয়েন্টারকে রেফার করা

    printf("Enter integer: ");
    scanf("%d",&(*personPtr).age);

    printf("Enter number: ");
    scanf("%f",&(*personPtr).weight);

    printf("Displaying: ");
    printf("%d%f",(*personPtr).age,(*personPtr).weight);

    return 0;
}

 

উপরের উদাহরণে struct person টাইপের পয়েন্টার ভ্যারিয়েবলকে person1 ভ্যারিয়েবলের এড্রেসে রেফার(refer) করা হয়েছে। তাই শুধুমাত্র পয়েন্টারের মাধ্যমে স্ট্রাকচার মেম্বারকে এক্সেস(access) করা যায়।

স্ট্রাকচার এর পয়েন্টার মেম্বারকে এক্সেস করার জন্য ->(Arrow) অপারেটর ব্যবহার করা হয়।

.(Dot) অপারেটর ব্যবহার করেও স্ট্রাকচার এর পয়েন্টার মেম্বারকে এক্সেস করতে পারেন।

(*personPtr).age এবং  personPtr->age একই রকম
(*personPtr).weight এবং personPtr->weight একই রকম

২। ডাইনামিক মেমোরি এলোকেশন ব্যবহার করে পয়েন্টারের মাধ্যমে স্ট্রাকচারের মেম্বারকে এক্সেস করা

পয়েন্টারের মাধ্যমে স্ট্রাকচারের মেম্বারকে এক্সেস করার জন্য malloc() ফাংশন ব্যবহার করে ডাইনামিকভাবে মেমোরি বরাদ্দ করা যেতে পারে।

malloc() ব্যবহারের সিনট্যাক্স

ptr = (cast-type*) malloc(byte-size)

malloc() ফাংশন ব্যবহার করে পয়েন্টারের মাধ্যমে স্ট্রাকচারের মেম্বারকে এক্সেস করার জন্য সি প্রোগ্রাম

 

kt_satt_skill_example_id=536

 

Content added || updated By
Promotion
NEW SATT AI এখন আপনাকে সাহায্য করতে পারে।

Are you sure to start over?

Loading...